5
תגובות

בעיה בAJAX

פתח משתמש_91496 ,
היי שלום לכולם,

יש לי תוכנית שאמורה להציג למסך את המילה "Eric" מתוך קובץ "Favorite_Word.xml"
על המסך יופיע שדה חיפוש עם הכנסת ערך לשדה החיפוש והרמת היד מהכפתור אמור להופיע המילה "Eric",

מאחר ואני לא מספיק משופשף בנושא יש לי קשיים בכתיבת התוכנית לפי דעתי התוכנית צריכה לעבוד
אבל היא לא.

אשמח לקבל את עזרתכם
תודה!
פרטי קובץ ה xml
************************
<?xml version="1.0"?>
<Favorite_Word xml:lang="EN">

<student>
<name>Eric</name>
<Age>33</Age>
</student>

</Favorite_Word>

<html>
<head>
  <title>Compare words</title>
  <link rel="stylesheet" rev="stylesheet" href="script.css" />
 
  <script type="text/javascript">
  var RequestWord = false;
  var url = "Favorite_Word.xml";
  window.onload = initAll;
 function initAll() {

  onkeyup = search;
  }

function search()
{
      getHTTPObject(); 
    alert("There is RequestWord :=2");
    if (RequestWord) {
    RequestWord.onreadystatechange = setWord;
    RequestWord.open("GET", url, true);
    RequestWord.send(null);
    alert("There is if RequestWord :=6");
  }
  else {
    alert("Sorry, but I couldn't create an XMLHttpRequest");
  }
 
}
function setWord() {
  var Node1 = "student";
  var Node2 = "name";

  if (RequestWord.readyState == 4) {
    if (RequestWord.status == 200) {
      if (RequestWord.responseXML) {

        var wordData = RequestWord.responseXML.getElementsByTagName(Node1);
               alert("wordData:=" + wordData + ":=5 " );        
                     var  NewWord = wordData[i].getElementsByTagName(Node2)[0].firstChild.nodeValue;
                  alert("NewWord:=" + NewWord );
        }
      }
    }
    else {
      alert("There was a problem with the request " + RequestWord.status + ":=3 4");
    }
  }


function getHTTPObject()
{
 
   if (window.XMLHttpRequest) {
    RequestWord = new XMLHttpRequest();
    alert("There is getHTTPObject firefox:=1");
  }
  else {
    if (window.ActiveXObject) {
      try {
        RequestWord = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (e) { }
    }
  }
}
   </script>
 
 
  </head>
<body>
  <form action="#">
    <h3>Please enter your word:</h3><br />
    <input type="text" id="word" autocomplete="off" /><br />
  </form>
</body>
</html>

5 תשובות

avatar ענה intval ב 23 לינואר 2012 #

לא ברור לי מאיפה הופיע ה i
אבל ככה עובד:
פיירפוקס

wordData[0].getElementsByTagName(Node2)[0].textContent

אקספלורר
wordData[0].getElementsByTagName(Node2)[0].innerText

avatar ענה משתמש_91496 ב 23 לינואר 2012 #

קודם כל תודה!

יפה מאד שמצאת טעות ,
התאמצתי מאד כדי לגלות טעות ומה שהצלחתי לגלות תיקנתי וזה הקוד שאני מציג לאחר תיקון.
"firstChild.nodeValue" נועד על מנת לקרוא מקובץ xml את המילה "Eric"
לאחר שינוי הקוד לפי מה שרשמת לא מוצג ALERT בשם "Eric"
האם יתכן ש "RequestWord.readyState == 4" ב"function setWord" = ערך נמוך מ 4 ולכן התנאי לא מתקיים
ואז ה ALERT עם המילה "Eric" לא יופיע לעולם ?

avatar ענה משתמש_91496 ב 23 לינואר 2012 #

עובד שיחקת אותה

כל הכבוד

אין עליכם

avatar ענה משתמש_91496 ב 23 לינואר 2012 #

אבל איך עלית על ה "ן" הקטן הזה שמתחבה לו שם?

avatar ענה intval ב 23 לינואר 2012 #

עם הזמן אתה לומד לשים לב למשתנים מוזרים בקוד ובכלל לדאבג.
בכל אופן, כל סביבת עבודה סבירה היית צובעת לך את המשתנה בצהוב ומציגה הודעה על משתנה שלא קיים.